package com.bzkj.msfx.mapper;

import com.bzkj.msfx.domain.MsfxDrugInfo;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * @projectName: bzkj-wms
 * @package: com.bzkj.mapper
 * @className: MsfxDrugInfoMapper.xml
 * @description: 码上放心药品信息管理持久层
 * @author: C1309
 * @createDate: 2024年10月23日
 * @version: v1.0
 */
public interface MsfxDrugInfoMapper {

    /**
     * 通过typeNo查询药品信息
     *
     * @param typeNo 药品子类编码
     * @return 查询结果
     */
    HashMap<String, String> queryByNo(String typeNo);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    MsfxDrugInfo queryById(Long id);

    /**
     * 查询指定行数据
     *
     * @param drugInfo 查询条件
     * @return 对象列表
     */
    List<MsfxDrugInfo> queryAllByLimit(MsfxDrugInfo drugInfo);


    /**
     * 新增数据
     *
     * @param drugInfo 实例对象
     * @return 影响行数
     */
    int insert(@Param("drugInfo") MsfxDrugInfo drugInfo);


    /**
     * 修改数据
     *
     * @param drugInfo 实例对象
     * @return 影响行数
     */
    int update(MsfxDrugInfo drugInfo);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Long id);

    /**
     * 创建追溯码表
     *
     * @param tableName 表名
     */
//    void createTable(@Param("tableName") String tableName);

    /**
     * 创建扫描码表
     *
     * @param tableName 表名
     */
    void createScanTable(@Param("tableName") String tableName);

    /**
     * 查询药品信息（首页显示用）
     *
     * @return 查询结果
     */
    ArrayList<MsfxDrugInfo> queryBaseInfo();

    /**
     * 查询管理系统的部门ID
     *
     * @param entId ERP系统的部门ID
     * @return 查询结果
     */
    Long queryDeptId(String entId);

    /**
     * 查询表的后缀
     *
     * @param entId 部门ID
     * @return 查询结果
     */
    String querySuffix(String entId);

    /**
     * 查询企业的entId
     * @param deptId 系统部门ID
     * @return 查询结果
     */
    String queryEntId(Long deptId);

    /**
     * 查询药品信息
     * @param typeNo 类型编码
     * @return 查询结果
     */
    String queryMsfxDrugInfo(String typeNo);

}
